package com.mask.im.server.config;

import com.mask.im.server.service.ServiceIdManager;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
import org.springframework.security.crypto.password.PasswordEncoder;

/**
 * 应用配置类
 * @author jian
 */
@Configuration
public class AppConfig {

    @Value("${spring.application.name}")
    private String serviceName;

    @Value("${server.port}")
    private Integer port;

    @Bean
    public ServiceIdManager serviceIdManager(StringRedisTemplate redisTemplate) {
        // 服务名称，可从配置文件读取
        boolean useRedisStorage = true;
        return new ServiceIdManager(serviceName, redisTemplate, useRedisStorage, port);
    }
    
    @Bean
    public PasswordEncoder passwordEncoder() {
        return new BCryptPasswordEncoder();
    }
}
    